package com.think.admin.web.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.think.admin.model.dto.user.SysUserDTO;
import com.think.admin.model.param.user.SetUserRoleParam;
import com.think.admin.model.param.user.SysUserParam;
import com.think.admin.model.query.SysUserQuery;
import com.think.common.param.UpdateBatchParam;
import com.think.common.web.service.ISuperService;
import com.think.dao.entity.SysUser;
import org.springframework.http.HttpEntity;

import java.util.List;

/**
 * <p>
 * 管理员用户表 服务类
 * </p>
 *
 * @author xwj
 * @since 2019-04-08
 */
public interface ISysUserService extends ISuperService<SysUser> {

    /**
     * 分页查询管理员用户表
     *
     * @param page
     * @param adminUserQuery
     * @return com.think.common.restful.RestfulResponse
     * @author xwj
     * @data 2019/4/10
     */
    HttpEntity pageSysUser(Page<SysUserDTO> page, SysUserQuery adminUserQuery);

    /**
     * 新增或修改
     *
     * @param adminUserParam
     * @return com.think.common.restful.RestfulResponse
     * @author xwj
     * @data 2019/4/10
     */
    HttpEntity createOrUpdate(SysUserParam adminUserParam);

    /**
     * 批量删除用户信息
     *
     * @param idList
     * @return com.think.common.restful.RestfulResponse
     * @author xwj
     * @data 2019/4/10
     */
    HttpEntity delete(List<String> idList);

    /**
     * 批量修改状态
     *
     * @param updateBatchParam
     * @return com.think.common.restful.RestfulResponse
     * @author xwj
     * @data 2019/4/10
     */
    HttpEntity updateState(UpdateBatchParam updateBatchParam);

    /**
     * 批量重置密码
     *
     * @param idList
     * @return com.think.common.restful.RestfulResponse
     * @author xwj
     * @data 2019/4/10
     */
    HttpEntity resetPwd(List<String> idList);

    /**
     * 用户角色
     *
     * @param setUserRoleParam
     * @return org.springframework.http.HttpEntity
     * @author xwj
     * @data 2019/5/5
     */
    HttpEntity setUserRole(SetUserRoleParam setUserRoleParam);

    /**
     * <p>
     * 销售人员查看
     * </p>
     * @author CaiWenYi
     * @Date: 2019/7/14 12:10
    */
    HttpEntity pageSysUserSelectList(Page<SysUserDTO> page, SysUserQuery sysUserQuery);
}
